package com.nju.edu.erp.service.finance;

import com.nju.edu.erp.dao.SaleSpecificDao;
import com.nju.edu.erp.model.po.saleSpecific.SaleSpecificInPO;
import com.nju.edu.erp.model.po.saleSpecific.SaleSpecificOutPO;
import com.nju.edu.erp.model.vo.saleSpecific.SaleSpecificInVO;
import com.nju.edu.erp.model.vo.saleSpecific.SaleSpecificOutVO;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.List;
@Service
public class SaleSpecificServiceImpl implements SaleSpecificService {

    private final SaleSpecificDao saleSpecificDao;

    @Autowired
    SaleSpecificServiceImpl(SaleSpecificDao saleSpecificDao){
        this.saleSpecificDao=saleSpecificDao;
    }

    //提供销售明细表
    @Override
    public List<SaleSpecificOutVO> getSaleSpecific(SaleSpecificInVO saleSpecificInVO){
//        System.err.println(saleSpecificInVO.getBeginDate());
//        System.err.println(saleSpecificInVO.getEndDate());
//        System.err.println(saleSpecificInVO.cName);
//        System.err.println(saleSpecificInVO.getSaleName());
//        System.err.println(saleSpecificInVO.pName);
        SaleSpecificInPO saleSpecificInPO=new SaleSpecificInPO();
        BeanUtils.copyProperties(saleSpecificInVO,saleSpecificInPO);
        List<SaleSpecificOutPO> saleSpecificOutPOS=
                saleSpecificDao.getSaleSpecific(
                        saleSpecificInPO.getBeginDate(),
                        saleSpecificInPO.getEndDate(),
                        saleSpecificInPO.getPName(),
                        saleSpecificInPO.getCName(),
                        saleSpecificInPO.getSaleName());
        List<SaleSpecificOutVO> saleSpecificOutVOS=new ArrayList<>();
        for (SaleSpecificOutPO spo:saleSpecificOutPOS) {
            SaleSpecificOutVO saleSpecificOutVO=new SaleSpecificOutVO();
            BeanUtils.copyProperties(spo,saleSpecificOutVO);
            saleSpecificOutVOS.add(saleSpecificOutVO);
        }
        return saleSpecificOutVOS;
    }

}
